package com.springcloud.test;


import org.springframework.boot.SpringApplication;
import org.springframework.cloud.client.SpringCloudApplication;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;

/**
 * @Desc: 带有熔断器的ribbon
 * 重启eureka-client之后，再尝试访问localhost:2101/consumer，此时我们将获得的返回结果为：fallback。
 * * 我们从eureka-client的控制台中，可以看到服务提供方输出了原本要返回的结果，但是由于返回前延迟了5秒，
 * * 而服务消费方触发了服务请求超时异常，服务消费者就通过HystrixCommand注解中指定的降级逻辑进行执行，
 * * 因此该请求的结果返回了fallback。这样的机制，对自身服务起到了基础的保护，同时还为异常情况提供了自动的服务降级切换机制。
 * * ----------------
 * ----------------
 * @CLASS_NAME: ConsumerApplication
 * ----------------
 * @Author: jovi
 * ----------------
 * @Date: 2020-03-24 15:40
 */
@SpringCloudApplication
public class RibbonHyApplication {

    public static void main(String[] args) {
        SpringApplication.run(RibbonHyApplication.class);
    }

    @Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}
